package com.mini.grpc.transport;

import java.net.SocketAddress;

/**
 * Transport是传输层的核心接口，负责创建客户端和服务端传输实例。
 * 
 * <p>传输层负责处理底层通信协议的实现，例如HTTP/2。
 */
public interface Transport {
    
    /**
     * 创建服务端传输实例
     *
     * @param address 服务端监听地址
     * @param listener 服务端监听器，用于接收传输事件
     * @return 服务端传输实例
     */
    ServerTransport createServer(SocketAddress address, ServerListener listener);
    
    /**
     * 创建客户端传输实例
     *
     * @param address 服务端地址
     * @param listener 客户端监听器，用于接收传输事件
     * @return 客户端传输实例
     */
    ClientTransport createClient(SocketAddress address, TransportListener listener);
} 